package br.com.webprojeto.colecoes;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;

import br.com.webprojeto.basicas.*;
import br.com.webprojeto.interfaces.*;

public class ColecaoTrecho implements InterfaceColecaoTrecho {
 
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoTrecho#adicionarTrecho(br.com.webrastreio.basicas.Trecho)
	 */
	public void adicionarTrecho(Trecho Tr) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.saveOrUpdate(Tr);
		sessao.getTransaction().commit();
		sessao.getSessionFactory().close();
	}
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoTrecho#removerTrecho(br.com.webrastreio.basicas.Trecho)
	 */
	public void removerTrecho(Trecho Tr){
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		sessao.delete(Tr);
		sessao.getTransaction().commit();
		sessao.getSessionFactory().close();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoTrecho#listarTrecho()
	 */
	public List<Trecho> listarTrecho() {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Query consulta = sessao.createQuery("from Trecho");
		
		return consulta.list();
	}
	 
	/* (non-Javadoc)
	 * @see br.com.webrastreio.colecoes.InterfaceColecaoTrecho#procurarTrecho(long)
	 */
	public Trecho procurarTrecho(long codTrecho) {
		Session sessao = HibernateUtil.getSessionFactory().openSession();
		sessao.beginTransaction();
		Trecho Tr = (Trecho) sessao.load(Trecho.class, codTrecho);
		sessao.getTransaction().commit();
		sessao.getSessionFactory().close();
		sessao.evict(Tr);
		return Tr;
	}
	
	@Override
	public void atualizarTrecho(Trecho Tr) {
	 	Session sessao = HibernateUtil.getSessionFactory().getCurrentSession();
		sessao.beginTransaction();
		sessao.update(Tr);
		sessao.getTransaction().commit();
		sessao.getSessionFactory().close();
	}
	 
}
 
